//#include <iostream>
//using namespace std;
//const int N = 1e5 + 10;
//int num[N];
//
//void Quick_Sort(int num[], int left, int right)
//{
//    if (left >= right)
//    {
//        return;
//    }
//    
//    int l = left - 1, r = right + 1, x;
//    x = num[(left + right) >> 1];
//    while(l < r)
//    {
//        do l++; while(num[l] < x);
//        do r--; while(num[r] > x);
//        if (l < r)
//        {
//            swap(num[l],num[r]);
//        }
//    }
//    Quick_Sort(num, left, r);
//    Quick_Sort(num, r + 1, right);
//}
//
//int main()
//{
//    int n;
//    cin >> n;
//    for(int i = 0; i < n; ++i)
//    {
//        cin >> num[i];
//    }
//    
//    Quick_Sort(num, 0, n - 1);
//    
//    for(int i = 0; i < n; ++i)
//    {
//        cout << num[i] << " ";
//    }
//    
//    cout << endl;
//    
//    return 0;
//}

//#include <iostream>
//using namespace std;
//const int N = 1e5 + 10;
//int num[N], help[N];
//void merge_sort(int num[], int l, int r)
//{
//	if (l >= r)
//	{
//		return;
//	}
//	int mid = (l + r) >> 1;
//	merge_sort(num, l, mid);
//	merge_sort(num, mid + 1, r);
//	int s = l, x = mid + 1, k = 0;
//	while(s <= mid && x <= r)
//	{
//		if (num[s] <= num[x])
//		{
//			help[k++] = num[s++];
//		}
//		
//		else
//		{
//			help[k++] = num[x++];
//		}
//	}
//	
//	while(s <= mid)
//	{
//		help[k++] = num[s++];
//	}
//	
//	while(x <= r)
//	{
//		help[k++] = num[x++];
//	}
//	
//	for(int i = l, j = 0; i <= r; ++i, ++j)
//	{
//		num[i] = help[j];
//	}
//}
//
//int main()
//{
//	int n;
//	cin >> n;
//	for (int i = 0; i < n; ++i)
//	{
//		cin >> num[i];
//	}
//	
//	merge_sort(num, 0, n - 1);
//	
//	for(int i = 0; i < n; ++i)
//	{
//		cout << num[i] << " ";
//	}
//	return 0;
//}

#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
	double x;
	cin >> x;
	double l = -1e5, r = 1e5;
	while(r - l >= 1e-8)
	{
		double mid = (l + r) / 2;
		if (mid * mid * mid >= x)
		{
			r = mid;
		}
		else
		{
			l = mid;
		}
	}
	printf("%.6lf\n",l);
	return 0;
}



